package Java7_Concurrency_Cookbook.thread_executor_framework.cached_thread_pool;

/**
 * 建议通过 Executors 工厂开创建 ThreadPoolExecutor 对象<br/>
 * 缓存线程池中如果有可用的线程, 直接会复用可用的线程来执行任务<br/>
 * 缓存线程池中如果没有足够的线程来执行任务, 就会创建新线程来执行任务<br/>
 *
 * 缓存线程池的缺点是如果任务执行时间较长, 发送过多的任务给执行器, 系统的负载将会过载<br/>
 *
 * 本示例中 Zoom 的执行时间越长, 缓存线程池创建的任务就会越多.
 * @author lixiangke
 * @date 2017/11/17
 */
public class Main {
    public static void main(String[] args) {
        Server server = new Server();
        for (int i = 0; i < 100; i++) {
            Task task = new Task("Zoom" + i);
            server.executeTask(task);
        }
        server.endServer();
    }
}
